Skip to main content

Full text of "A linear time algorithm to compute the impact of all the articulation points"

See other formats


arXiv: 1504.00341 v3 [cs.DS] 10 May 2015 


A linear time algorithm to compute 
the impact of all the articulation points 


Gabriele Farina^ 


Abstract. The articulation points of an undirected connected graph 
are those vertices whose removal increases the number of connected 
components of the graph, i.e. the vertices whose removal disconnects the 
graph. However, not all the articulation points are equal: the removal of 
some of them might end in a single vertex disconnected from the graph, 
whilst in other cases the graph can be split in several small pieces. In order 
to measure the effect of the removal of an articulation point, Ausiello 
et al. [T] have proposed the impact. Impact is defined as the number of 
vertices that get disconnected from the main (largest) surviving connected 
component (CC) after the removal of the articulation point. In this paper 
we present the first linear time algorithm {0{m + n) for a graph with 
n vertices and m edges) to compute the impact of all the articulation 
points of the graph, thus improving from the 0{a{m + n)) « 0(nm + n^) 
of the naive algorithm, with a being the number of articulation points of 
the graph. 


1 Introduction 

Connectivity is one of the most basic structural properties of a graph. If an 
undirected graph is connected, a natural related question is which are the vertices 
whose removal disconnects the graph; this question has been answered by Hopcroft 
and Tarjan in |3], that proposed the now classical linear time algorithm, described 
in many textbooks (see, e.g., 0), based on a Depth First Search visit of a graph 
0 - 

From the topological point of view all the articulation points are equal, in the 
sense that they split the graph in more than one connected components; however, 
it is natural, especially when studying the resiliency of a graph, to ask which are 
the vertices (i.e., articulation points) whose removal is more disrupting. In order 
to measure the effect of the removal of an articulation point, Ausiello et al. [1] 
have proposed the impact. Impact is defined as the number of vertices that get 
disconnected from the main (largest) surviving connected component (CC) after 
the removal of the articulation point. Consider, as an example, the graph shown 
in Figure^ in this graph the vertex 4 is the one with the largest impact, and its 
removal disconnects six vertices from largest connected component (i.e, the one 
that includes vertices {5,6, 7, 8,9,10}). 

From its definition, the impact can be naively computed in the following 
way: we first compute, using Hopcroft and Tarjan’s algorithm, the articulation 

^ Polytechnic University of Milan, Italy. E-mail: gabr.farina@gmail.com 





Fig. 1. Example graph. Articulation points (bold vertices), and bridges (bold edges) 
are emphasized [left]; the effect of the removal of vertex 4 [right]. 


point of the graph, then, we remove each of them, one at a time, and perform 
any linear visit of the graph, i.e. a DFS or a BFS, to compute the number of 
reachable vertices. If the graph has a articulation points, this naive algorithm 
costs 0{a{m + n)) « 0{nm + n^), since a can be of the same order of n, and 
indeed it holds 0 < a < n — 2. 

In this paper we present the first linear time algorithm to compute the impact 
for all the articulation points of an undirected graph in linear time, i.e. 0{m + n) 
for a graph with n vertices and m edges. The algorithm is built over three main 
ingredients: the block forest data structure, proposed by Westbrook and Tarjan 
in [HI to maintain the biconnected components of a graph in an online setting, 
an algorithm to recursively compute this data structure offline, and a depth first 
based traversal of this structure, to compute the impact of all the vertices. 

This paper is organized as follows: the few necessary preliminary notions are 
discussed in Section The algorithm is described in Section whilst concluding 
remarks are addressed in Section Due to space constraints, we provide only 
some intuition of the algorithm properties, and do not prove them formally. In 
the Appendix we present the algorithm’s pseudocode and some other remarks. 

2 Preliminaries. 

Given an undirected graph G = (V,E), we define: 

Connected component: a maximal set of vertices V' QV such that, given 
M, u S y 1 there is at least one path between u and v in G. 

Articulation point: a vertex v G V such that its removal from the graph G 
increases the number of connected components in G. 

Bridge: an edge e G E such that its removal from the graph G increases the 
number of connected components in G. 

Biconnected component: a maximal set of vertices V" C V such that the 
removal of any single vertex v G V" leaves the component connected. 

In Figure]^ [left] we can see an example graph arranged in order to emphasize 
its articulation points and bridges. In Figure [left] we can see the same graph, 
with its biconnected components emphasized. It is important to note that all 







the vertices adjacent to bridges are articulation points unless the bridge is their 
only incident edge, as is the case for vertex 1 in Figure the removal of the 
bridge leaves vertex 1 isolated, but the removal of vertex 1 (together with all its 
adjacent edges, i.e. only the bridge) does not increase the number of connected 
components of G. 


3 The algorithm 


In this section we describe our linear time algorithm to compute the impact of 
all the vertices (articulation points). As we mentioned in the introduction, the 
algorithm uses the block forest (BF) data structure, proposed by Westbrook 
and Tarjan in |3] to maintain online the biconnected components. In order to 
provide some intuition for the algorithm we propose, we briefly recall some 
properties of the block forest data structure. In Figure it is possible to see 
the graph from Figure^ and the corresponding block forest data structure that, 
since the graph is connected, is a single tree. This tree has two distinct type of 
vertices: square vertices, that correspond to vertices of the original graph, and 
round vertices, that correspond to the biconnected components of the graph. 
Each vertex of the graph (square vertices) is connected, in the BF, to all the 
biconnected components it belongs to (round vertices). Every tree in the block 
forest is rooted in a round node, unless the tree represents a singleton (i.e., a 
vertex with no incident edges) of the graph, in which case the tree is made of a 
single square node. The articulation points of the graph, shown in figure as bold 
square vertices, are the square vertices that are not leaves in the BF. 

Now that we described the properties of the BF data structure, the algorithm 
can be roughly divided into two main steps: 


— it computes the BF data structure offline, using a recursive offline algorithm; 

— it computes the impact of each (square non-leaf) vertex in the BF, using a 
DFS based algorithm (see the pseudocode in the appendix). 

We provide some intuition for both the steps of the algorithm: the first one 
builds the BF data structure one tree at a time, starting from an unvisited vertex 
of the graph at each step; the construction of a single tree can be seen as a 
modified version of Hopcraft and Tarjan’s algorithm [5]. In order to compute the 
impact of the vertices, every round vertex of the BF stores the number of square 
vertices that belong to its subtree. This can be seen graphically in the BF tree 
shown in Figure where these numbers are put in the small gray badges close 
to the round vertices. It can be proven that the impact, for each square vertex, 
can be easily calculated by looking at the values written in its round neighbours. 
We compute these values for each square vertex using a DFS based algorithm. 


13 




Fig. 2. Biconnected components of the graph of Figure [left] and the corresponding 
block forest data structure [right]. 


4 Conclusions 

In this paper we presented a linear time algorithm to compute, in linear time, 
the impact of all the articulation points of an undirected graph. More precisely, 
we showed that the following holds: 

Theorem 1. Given an undirected graph G = (V,E), it is possible to compute 
the impact of all the articulation points in 0(|I^| + |if|) time and space. 

The approach described in this paper could be extended to directed graphs as 
well but, even though recently a linear time algorithm has been proposed to 
compute all the strong articulation points, it is still open the problem of how to 
compute the 2-vertex connected components |4]. 


References 

1. G. Ausiello, D. Firmani, and L. Laura. Real-time analysis of critical nodes in 
network cores. In 8th International Wireless Communications and Mobile Computing 
Conference (IWCMC), pages 42-46. IEEE, 2012. 

2. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms, 
Third Edition. The MIT Press, 3rd edition, 2009. 

3. J. Hopcroft and R. Tarjan. Algorithm 447: Efficient algorithms for graph 
manipulation. Communications of the ACM, 16(6):372-378, 1973. 

4. G. F. Italiano, L. Laura, and F. Santaroni. Finding strong bridges and strong 
articulation points in linear time. Theoretical Computer Science, 447:74-84, 2012. 

5. R. Tarjan. Depth-first search and linear graph algorithms. SIAM Journal on 
Computing, 1(2):146-160, 1972. 

6. J. Westbrook and R. Tarjan. Maintaining bridge-connected and biconnected 
components on-line. Algorithmica, 7(1-6):433-464, 1992.